Saltar al contenido principal

Configuración de la Comunicación MQTT

Esta guía le muestra cómo configurar la comunicación MQTT entre su cámara OV80i y dispositivos externos utilizando Node-RED. MQTT habilita mensajería ligera y confiable para aplicaciones IoT y comunicación con dispositivos remotos.

Cuándo usar la Comunicación MQTT: integración de dispositivos IoT, sistemas de monitoreo remoto, patrones de mensajería publish/subscribe, entornos de ancho de banda bajo, redes de sensores distribuidas, o cuando necesite entrega confiable de mensajes con reconexión automática.

Prerrequisitos

  • Sistema de cámara OV80i configurado y conectado
  • Conectividad de red entre la cámara y el broker MQTT
  • Broker MQTT disponible (local o basado en la nube)
  • Comprensión básica de los conceptos de MQTT (topics, publish/subscribe)
  • Receta activa configurada en la cámara

Visión General de la Comunicación MQTT

Conceptos Clave de MQTT:

  • Broker: Servidor central que enruta mensajes entre clientes
  • Topics: Categorías de mensajes (p. ej., "camera/status", "commands/trigger")
  • Publish: Enviar mensajes a un topic
  • Subscribe: Recibir mensajes de un topic
  • QoS: Niveles de Calidad de Servicio (0, 1, 2)

Paso 1: Verificar la Configuración de Red

1.1 Verificar la Configuración de Red de la Cámara

  1. Navegue a Configuración del Sistema
  2. Anote la dirección IP de la cámara (p. ej., 10.250.0.100)
  3. Verifique la conectividad de red hacia el broker MQTT

1.2 Requisitos del Broker MQTT

Asegurar la accesibilidad del broker MQTT:

  • Misma red: La cámara debe alcanzar la dirección IP del broker
  • Acceso al puerto: Puerto MQTT predeterminado 1883 (o 8883 para TLS)
  • Autenticación: Nombre de usuario y contraseña si el broker lo requiere
  • Cortafuegos: Permitir tráfico MQTT en los puertos requeridos

1.3 Requisitos de Red

ComponenteDirección IPPuertoNotas
Cámara10.250.0.100N/ADebe alcanzar al broker
Broker MQTT10.250.0.2001883Puerto MQTT estándar
Dispositivos Cliente10.250.0.xxxVariableCualquier dispositivo suscriptor

Paso 2: Acceder al Editor de Node-RED

2.1 Navegar a IO Block

  1. Abra su receta activa en el Recipe Editor
  2. Haga clic en "IO Block" en el menú de migas de pan
  3. Haga clic en "Configure IO" para ingresar al editor de Node-RED

2.2 Verificar nodos MQTT disponibles

Verifique la paleta de Node-RED para nodos MQTT:

  • mqtt in - Suscribirse a topics MQTT
  • mqtt out - Publicar en topics MQTT

Punto de control: Debería ver nodos MQTT en la sección Network (Red) del panel izquierdo.

Paso 3: Configurar la Conexión al Broker MQTT

3.1 Agregar Configuración del MQTT Broker

  1. Arrastre el nodo "mqtt in" al lienzo (para la configuración inicial)
  2. Haga doble clic en el nodo para abrir la configuración
  3. Haga clic en el ícono de lápiz junto al campo Servidor
  4. Haga clic en "Add new mqtt-broker"

3.2 Configurar los Ajustes del Broker

Configuración básica del Broker:

AjusteValorDescripción
NombreCamera MQTT BrokerIdentificador descriptivo
Servidor192.168.0.200Dirección IP del broker MQTT
Puerto1883Puerto MQTT estándar
ProtocoloMQTT V3.1.1Versión recomendada
ID de Cliente(auto-generado)Dejar en blanco para automático

3.3 Configuración de Autenticación (Si es Requerida)

Si el broker requiere autenticación:

AjusteDescripción
Nombre de usuarioNombre de usuario del broker MQTT
ContraseñaContraseña del broker MQTT
Usar TLSHabilitar para conexiones seguras (puerto 8883)

3.4 Configuración Avanzada

Opciones de Conexión:

ConfiguraciónValor RecomendadoDescripción
Keep Alive60 secondsIntervalo de latido
Clean SessionTrueIniciar cada conexión desde cero
Auto ConnectTrueReconectar automáticamente

3.5 Guardar Configuración del Broker

  1. Haz clic en "Add" para guardar la configuración del broker
  2. Haz clic en "Done" para cerrar la configuración del nodo
  3. La configuración del broker ya está disponible para todos los nodos MQTT

Paso 4: Configurar MQTT Input (Suscripción)

4.1 Configurar el nodo MQTT In

  1. Selecciona el nodo "mqtt in" que añadiste
  2. Haz doble clic para configurar
  3. Configura las configuraciones de suscripción:

4.2 Configuración de MQTT In

Configuración de Suscripción:

ConfiguraciónValor de ejemploDescripción
ServidorCamera MQTT BrokerSeleccionar el broker configurado
Temacamera/commandsTema al suscribirse a
QoS0Calidad de entrega de mensajes
Salidaauto-detectFormato de salida de mensajes
NombreCommand ListenerIdentificador de nodo

4.3 Convenciones de Nombres de Topic

Estructura de tópicos recomendada:

PropósitoEjemplo de TemaUso
Comandoscamera/commandsRecibir comandos de control
Solicitudes de estadocamera/status/requestSolicitudes de información de estado
Configuracióncamera/configCambios de configuración

4.4 Configurar el Procesamiento de Mensajes

  1. Agregar el nodo "debug" para monitorear los mensajes entrantes
  2. Conectar: MQTT In → Debug
  3. Configurar el nodo debug para mostrar el mensaje completo

Paso 5: Configurar MQTT Output (Publicación)

5.1 Añadir Nodo MQTT Out

  1. Arrastra el nodo "mqtt out" al lienzo
  2. Haz doble clic para configurar
  3. Selecciona la misma configuración de broker

5.2 Configuración de MQTT Out

Configuración de Publicación:

ConfiguraciónValor de EjemploDescripción
ServidorCamera MQTT BrokerMismo broker que la entrada
Temacamera/responsesTema para respuestas de la cámara
QoS0Calidad de entrega de mensajes
RetainFalseNo almacenar el último mensaje
NombreResponse PublisherIdentificador de nodo

5.3 Estructura de Temas de Respuesta

Tópicos de respuesta recomendados:

Tipo de RespuestaEjemplo de TemaUso
Actualizaciones de estadocamera/statusInformación de estado de la cámara
Resultadoscamera/resultsResultados de inspección
Reconocimientoscamera/ackConfirmaciones de comandos

Paso 6: Crear Flujo de Comunicación Básico

6.1 Construir Flujo de Mensajes Salientes

Crear un flujo para publicar mensajes desde la cámara:

  1. Agregar el nodo "inject" para activar mensajes
  2. Agregar el nodo "function" para dar formato al mensaje
  3. Agregar el nodo "mqtt out" para publicar
  4. Conectar: Inject → Function → MQTT Out

6.2 Construir Flujo de Mensajes Entrantes

Crear un flujo separado para recibir mensajes:

  1. Agregar el nodo "mqtt in" para suscribirse
  2. Agregar el nodo "debug" para monitorear
  3. Conectar: MQTT In → Debug

6.3 Configurar Nodo Inject

  1. Haz doble clic en el nodo inject
  2. Configurar ajustes:
    • Nombre: "Send Test Message"
    • Carga útil (Payload): Timestamp
    • Tema: (dejar en blanco)
  3. Haz clic en "Done"

6.4 Configurar Function Node

Formato simple de mensajes:

// Format outgoing message
msg.topic = "camera/status";
msg.payload = "Camera online - " + new Date().toISOString();
return msg;

  1. Haz doble clic en el function node
  2. Copie el código anterior en la pestaña "On Message"
  3. Nombre: "Format Message"
  4. Haz clic en "Done"

6.5 Configurar MQTT Out Node

  1. Haz doble clic en el mqtt out node
  2. Seleccionar broker: Camera MQTT Broker (configurado anteriormente)
  3. Topic: (dejar vacío - establecido por el function node)
  4. Nombre: "Publish Status"
  5. Haz clic en "Done"

6.6 Configurar MQTT In Node

  1. Haz doble clic en el mqtt in node
  2. Seleccionar broker: Camera MQTT Broker
  3. Topic: camera/commands
  4. Nombre: "Command Listener"
  5. Haz clic en "Done"

6.7 Configurar Debug Node

  1. Haz doble clic en el debug node
  2. Salida (Output): Complete msg object
  3. Nombre: "Incoming Messages"
  4. Haz clic en "Done"

6.8 Estructura de Flujo Final

Su flujo completo debería ser:

Saliente: Inject → Function → MQTT Out Entrante: MQTT In → Debug

Paso 7: Desplegar y Probar la Configuración

7.1 Desplegar Flujo

  1. Haz clic en el botón "Deploy" (esquina superior derecha)
  2. Verificar el mensaje de despliegue exitoso
  3. Verificar indicadores de estado de nodo:
    • Punto verde: Conectado al broker
    • Punto rojo: Conexión fallida
    • Punto amarillo: Conectando

7.2 Prueba de Comunicación Interna

Prueba de la publicación MQTT de la cámara:

  1. Haz clic en el botón de inyección para enviar un mensaje de prueba
  2. Verificar que el nodo MQTT Out muestre actividad
  3. Verificar el panel de depuración si tienes mensajes externos

7.3 Prueba Externa (Opcional)

Prueba con un cliente MQTT externo para enviar comandos a la cámara:

Usando herramientas de línea de comandos:

# Send a test command to the camera
mosquitto_pub -h 10.250.0.100 -t "camera/commands" -m "test_command"

Resultado esperado: El nodo de depuración debería mostrar el mensaje entrante en el panel de depuración de Node-RED.

7.4 Verificar la Comunicación

Verifique estos aspectos:

PruebaResultado EsperadoEstado
Conexión al BrokerEstado verde en nodos MQTT
Publicación de mensajesLa inyección dispara MQTT Out correctamente
Recepción de mensajesEl depurador muestra mensajes externos
Re-conexiónReconexión automática tras interrupción de red

Paso 8: Solución de Problemas de MQTT

8.1 Problemas de Conexión

ProblemaSíntomasSolución
No se puede conectar al brokerIndicadores de estado rojosVerifique IP y puerto del broker
Fallo de autenticaciónConexión denegadaVerifique usuario/contraseña
Time-outs de redEstado de conexión amarilloVerifique la conectividad de la red
Bloqueo por firewallNo hay intento de conexiónAbra los puertos MQTT

8.2 Problemas de Mensajes

ProblemaSíntomasSolución
No se reciben mensajesDepurador no muestra nadaVerifique suscripciones al tema
Los mensajes no se publicanLos clientes externos no ven nadaVerifique los temas de publicación
Errores de formato de mensajeFallos de parseoUse mensajes de texto simples
Mensajes perdidosEntrega intermitenteVerifique la conexión al broker

8.3 Problemas de rendimiento

ProblemaSíntomasSolución
Alta latenciaEntrega de mensajes con retardoVerifique el rendimiento del broker
Caídas de conexiónReconexiones frecuentesAjuste la configuración de keep-alive
Sobrecarga de mensajesSobrecarga del brokerImplementar la limitación de la velocidad de mensajes

8.4 Técnicas de depuración

Solución de problemas de forma sistemática:

  1. Verifique el estado de la conexión del broker en Node-RED
  2. Monitoree el panel de depuración de Node-RED para el flujo de mensajes
  3. Utilice mensajes de texto simples antes de datos complejos
  4. Verifique la conectividad de red con ping
  5. Pruebe con temas básicos antes de flujos avanzados

¡Éxito! La comunicación MQTT está lista

Su sistema de comunicación MQTT ya puede:

  • Conectarse a brokers MQTT con autenticación adecuada
  • Suscribirse a temas para recibir comandos y datos
  • Publicar mensajes para actualizaciones de estado y respuestas
  • Manejar formatos de mensajes JSON para una comunicación estructurada
  • Reconectarse automáticamente tras interrupciones de red
  • Soportar múltiples niveles de QoS para diferentes prioridades de mensajes

Mantenimiento continuo

Verificaciones regulares del sistema

  • Monitorear el estado de la conexión del broker en Node-RED
  • Verificar la entrega de mensajes con mensajes de prueba
  • Verificar los logs del broker en busca de patrones de error
  • Actualizar las credenciales de autenticación según sea necesario

Monitoreo de rendimiento

  • Rastrear la latencia de mensajes y los tiempos de entrega
  • Monitorear el uso de recursos del broker para escalabilidad
  • Analizar los patrones de uso de temas para optimización
  • Revisar la configuración de QoS basada en los requisitos reales

Próximos pasos

Después de configurar la comunicación MQTT básica:

  1. Implementar flujos de mensajes específicos para su aplicación
  2. Configurar jerarquías de temas para una comunicación organizada
  3. Añadir medidas de seguridad, como cifrado TLS
  4. Integrar con sistemas externos utilizando protocolos MQTT establecidos
  5. Crear paneles de monitoreo para la salud del sistema

🔗 Ver También